package com.esisa.web.actions;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.esisa.business.AdminManager;
import com.esisa.business.FermierManager;
import com.esisa.business.VeterinaireManager;
import com.esisa.dao.TypeBetailDao;
import com.esisa.models.Compte;
import com.esisa.models.Fermier;
import com.esisa.models.TypeBetail;
import com.esisa.models.Veterinaire;
import com.esisa.utils.BusinessFactory;
import com.opensymphony.xwork2.ActionSupport;

public class AdministrationAction extends ActionSupport{

	private Veterinaire veterinaire;
	private Fermier fermier ;    
	private Map<Integer,String> typesBetail=new HashMap<Integer,String>();
	private int typeBetail;
	private VeterinaireManager veterinaireManager;
	private AdminManager adminManager;
	private FermierManager fermierManager;
	private String dateNaissance;
	public AdministrationAction() {
		veterinaireManager=BusinessFactory.getVeterinaireManager();
		adminManager=BusinessFactory.getAdminManager();
		fermierManager=BusinessFactory.getFermierManager();
	}
	public String nouveauVeterinaire(){
		Compte compte = veterinaire.getCompte();
		compte.setGrade("veterinaire");
		compte.setLocked(false);
		compte.setPersonne(veterinaire);
		compte.setDateCreation(new Date());
		compte.setPassword(veterinaire.getNom()+"."+veterinaire.getPrenom());
		compte.setLogin(veterinaire.getNom()+"."+veterinaire.getPrenom());
		veterinaire.setDateRecrutement(new Date());
		
		if(veterinaireManager.create(veterinaire)){
			return SUCCESS;
		}
		return ERROR;
	} 
    public String nouveauFermier(){
    	System.out.println("AdministrationAction.nouveauFermier()");
    	TypeBetail p=adminManager.findTypeBetail(this.typesBetail.get(typesBetail));
    	if(p==null){
    		fermier.setTypeBetail(p);
    		Compte compte = veterinaire.getCompte();
    		compte.setGrade("fermier");
    		compte.setLocked(false);
    		compte.setPersonne(fermier);
    		compte.setDateCreation(new Date());
    		compte.setPassword(fermier.getNom()+"."+fermier.getPrenom());
    		compte.setLogin(fermier.getNom()+"."+fermier.getPrenom());
    		fermier.setDateRecrutement(new Date());
    		if(fermierManager.create(fermier)){
    			return SUCCESS;
    		}
    	}
    	 return ERROR;
    }
	public Veterinaire getVeterinaire() {
		return veterinaire;
	}

	public void setVeterinaire(Veterinaire veterinaire) {
		this.veterinaire = veterinaire;
	}
	public void setVeterinaireManager(VeterinaireManager veterinaireManager) {
		this.veterinaireManager = veterinaireManager;
	}
	public Fermier getFermier() {
		return fermier;
	}
	public void setFermier(Fermier fermier) {
		System.out.println(">>Fermier "+fermier.toString());
		this.fermier = fermier;
	}
	public int getTypeBetail() {
		return typeBetail;
	}
	public void setTypeBetail(int typeBetail) {
		this.typeBetail = typeBetail;
	}
	public Map<Integer, String> getTypesBetail() {
		
		List<TypeBetail> res = adminManager.findAllTypeBetail();
		if(res!=null){
			for(int i=0;i<res.size();i++){
				typesBetail.put(i,res.get(i).getType());
			}
		}
		return typesBetail;
	}
	public String getDateNaissance() {
		return dateNaissance;
	}
	public void setDateNaissance(String dateNaissance) {
		System.out.println("DateNaissance:"+dateNaissance);
		this.dateNaissance = dateNaissance;
	}
	
}
